package com.ruoyi.entity;

import lombok.Data;

import java.math.BigDecimal;

/**
 * 用户订单聚合DTO（包含用户、订单统计、优惠券、订单详情、订单项）
 */
@Data
public class UserOrderDto {
    // 1. 用户基础信息
    private Long userId;
    private String userNickname; // 对应SQL"用户昵称"
    private String phonenumber;  // 对应SQL"手机号"
    private String email;        // 对应SQL"邮箱"
    private String userType;     // 对应SQL"用户类型"

    // 2. 订单状态统计
    private Integer waitPayCount;     // 待付款订单数
    private Integer waitShipCount;    // 待发货订单数
    private Integer waitReceiveCount; // 待收货订单数
    private Integer completedCount;   // 已完成订单数
    private Integer cancelledCount;   // 已取消订单数

    // 3. 优惠券分类统计
    private Integer availableCount;      // 可用优惠券数
    private String availableList;        // 可用优惠券列表
    private Integer soonExpireCount;     // 即将过期优惠券数
    private String soonExpireList;       // 即将过期优惠券列表
    private Integer unavailableCount;    // 不可用优惠券数
    private String unavailableList;      // 不可用优惠券列表

    // 4. 订单详细信息
    private String orderId;        // 订单号
    private BigDecimal totalAmount;// 订单总金额
    private BigDecimal payAmount;  // 实付金额
    private BigDecimal freight;    // 运费
    private String discountType;   // 折扣类型
    private String shipMethod;     // 运输方式
    private String orderStatus;    // 订单状态
    private String payTime;        // 支付时间
    private String shipTime;       // 发货时间
    private String receiveTime;    // 确认收货时间
    private String createTime;     // 订单创建时间

    // 5. 订单项信息
    private String skuId;          // 商品SKU
    private Integer quantity;      // 购买数量
    private BigDecimal unitPrice;  // 商品单价
    private BigDecimal totalPrice; // 订单项总金额
}
